package com.ruoyi.manage.cms.domain;

import java.util.Date;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.baomidou.mybatisplus.annotation.TableField;
import com.baomidou.mybatisplus.annotation.TableName;
import com.fasterxml.jackson.annotation.JsonFormat;
import com.ruoyi.common.annotation.Dict;
import io.swagger.annotations.ApiModel;
import io.swagger.annotations.ApiModelProperty;
import lombok.Builder;
import lombok.Data;
import lombok.experimental.Accessors;
import lombok.experimental.Tolerate;
import com.ruoyi.common.annotation.Excel;
import com.ruoyi.common.core.domain.BaseEntity;

import javax.validation.constraints.NotBlank;
import javax.validation.constraints.NotEmpty;
import javax.validation.constraints.NotNull;
import javax.validation.constraints.Size;
import java.io.Serializable;
import java.math.BigDecimal;
import java.util.Date;
import java.time.LocalDate;
import java.util.List;


/**
 * news对象 hb_news
 *
 * @author ruoyi
 * @date 2025-07-18
 */
@Data
@ApiModel(value="news对象", description="news")
@TableName("hb_news")
@Builder
public class HbNews extends BaseEntity implements Serializable {

    private static final long serialVersionUID=1L;


    /**
     *  主键ID
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "主键ID")
    private  String  id;

    /**
     *  新闻标题
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "新闻标题")
    @ApiModelProperty(value = "新闻标题")
    @NotBlank(message = "新闻标题不能为空")
    private  String  title;

    /**
     *  新闻内容
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "新闻内容")
    @ApiModelProperty(value = "新闻内容")
    @NotBlank(message = "新闻内容不能为空")
    private  String  content;

    /**
     *  信息来源
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "信息来源")
    @ApiModelProperty(value = "信息来源")
    private  String  source;

    /**
     *  发表人(展示用)
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "发表人(展示用)")
    @ApiModelProperty(value = "发表人(展示用)")
    private  String  author;

    /**
     *  封面图URL
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "封面图URL")
    @ApiModelProperty(value = "封面图URL")
    private  String  coverImage;

    /**
     *  是否置顶
     * 对应字典表： $column.dictTable ，对应字段值：y_n ，对应字段名：$column.dictName
     */

    @Dict(dicCode = "y_n")
    @Excel(name = "是否置顶", dictType="y_n")
    @ApiModelProperty(value = "是否置顶")
    private  Integer  isTop;

    /**
     *  置顶权重
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "置顶权重")
    @ApiModelProperty(value = "置顶权重")
    private  Long  topWeight;

    /**
     *  发表状态
     * 对应字典表： $column.dictTable ，对应字段值：published_status ，对应字段名：$column.dictName
     */

    @Dict(dicCode = "published_status")
    @Excel(name = "发表状态", dictType="published_status")
    @ApiModelProperty(value = "发表状态")
    private  Integer  status;

    /**
     *  创建人ID
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "创建人ID")
    @ApiModelProperty(value = "创建人ID")
    private  String  createBy;

    /**
     *  最后修改人ID
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "最后修改人ID")
    @ApiModelProperty(value = "最后修改人ID")
    private  String  updateBy;

    /**
     *  发布时间
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "发布时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "发布时间")
    private  Date  publishTime;

    /**
     *  创建时间
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "创建时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "创建时间")
    private  Date  createTime;

    /**
     *  最后修改时间
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @JsonFormat(pattern = "yyyy-MM-dd")
    @Excel(name = "最后修改时间", width = 30, dateFormat = "yyyy-MM-dd")
    @ApiModelProperty(value = "最后修改时间")
    private  Date  updateTime;

    /**
     *  浏览次数
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "浏览次数")
    @ApiModelProperty(value = "浏览次数")
    private  Integer  viewCount;

    /**
     *  浏览次数
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "内容描述")
    @ApiModelProperty(value = "内容描述")
    private  String  description;

    /**
     *  删除状态: 0-正常 1-已删除
     * 对应字典表： $column.dictTable ，对应字段值：y_n ，对应字段名：$column.dictName
     */

    @Dict(dicCode = "y_n")
    @Excel(name = "删除状态: 0-正常 1-已删除", dictType="y_n")
    @ApiModelProperty(value = "删除状态: 0-正常 1-已删除")
    private  Integer  isDeleted;

    /**
     *  
     * 对应字典表： $column.dictTable ，对应字段值： ，对应字段名：$column.dictName
     */

    @Excel(name = "")
    @ApiModelProperty(value = "")
    private  String  remark;
    @TableField(exist = false)
    private List<String> ids;
    @Tolerate
    public HbNews(){}
}
